Conversation agent for collaborative search engine

ABSTRACT

A chatbot in the context of a chat group messaging is described. The chat group can include a plurality of users and a chatbot. A set of rules can be defined for the users of the group granting each user a privilege status. The chatbot can receive a request through a message transmitted to the chat group. The chatbot can discern a task associated with the message, and perform the task or ask another module to perform the task. Once the task is performed, the chatbot can report the results to the chat group. The chatbot can include a conflict resolution module which can resolve conflicts. The conflict resolution module can use each user&#39;s privilege status to resolve the conflicts.

BACKGROUND

A chatbot can be a computer program which conducts a conversation with ahuman user. Many service providers take advantage of chatbots in theirtechnical as well as business operations. For example, some use chatbotsfor information gathering purposes and others use chatbots for customerservice operations.

SUMMARY

A chatbot in the context of a chat group messaging is described. Thechat group can include a plurality of users and a chatbot. A set ofrules can be defined for the users of the group granting each user aprivilege status. The chatbot can receive a request through a messagetransmitted to the chat group. The chatbot can discern a task associatedwith the message, and perform the task or ask another module to performthe task. Once the task is performed, the chatbot can report the resultsto the chat group. The chatbot can include a conflict resolution modulewhich can resolve conflicts. The conflict resolution module can use eachuser's privilege status to resolve the conflicts.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a user interface of a messaging application.

FIG. 2 illustrates exemplary hardware components for a server.

DETAILED DESCRIPTION

Chatbot

A chatbot (also known as a smartbot, talkbot, chatterbot, Bot, IM bot,interactive agent, Conversational interface or Artificial ConversationalEntity) can be a computer program or an artificial intelligence whichconducts a conversation via auditory or textual methods. A chatbot canprovide a conversational experience for interaction with users. In oneexample, a user can type a question, the chatbot can interpret thequestion and then provide an answer. In another example, a chatbot canask a question or ask a user to provide certain information to thechatbot. The user can provide a response to the chatbot which canclassify the information in the response, and act according to theinformation. A chatbot can be used in a dialog system for variouspurposes, e.g., customer service or information acquisition.

In an example embodiment, a chatbot can receive requests from multipleusers. The chatbot can follow the conversation and ascertain the intentof each request provided by each user. Based on the intent, the chatbotcan perform a task. If another user submits another request, the chatbotcan update its understanding of the intent of the conversation and actaccordingly.

In an example embodiment, a chatbot can use natural language processingsystems or techniques. For example, the chatbot can use intentclassification techniques. Intent classification can be a naturallanguage understanding (“NLU”) task that would be used to understand ata high level what tasks the chatbot should be performing. The intent canbe hard-coded with a rules-based system with regular expression (i.e.,scanning the words) or train a supervised machine learningclassification model on labeled examples. Many machine learning modelscan be used for this purpose, e.g., a neural net (or deep learning), arecurrent neural net such as LSTM, decision tree-based methods likerandom forest or gradient boosted machines, support vector machine,logistic regression, etc.

The processing system can also include some preprocessing modules toconvert text into character, word, or sentence embeddings that can befed into the model. Basic preprocessing can include stemming orlemmatization, sentence or word tokenization, stopword removal, etc.This can include a term frequency based approach, including TF-IDF, orWord2Vec, Universal Sentence Encoder, etc. Part of the NLU can alsoinclude dependency parsing to try to capture negation, or sentimentanalysis.

Once the processing system knows the intent of the conversation (e.g.,the user is providing car information for chatbot to search; the user istelling chatbot to undo a previous search term; and the user is asking adifferent user to provide feedback, etc.), the chatbot can perform thetask associated with the intent. This can involve named entityrecognition (“NER”) to extract the specific information that the chatbotneeds to fulfill the request. If the chatbot does not find theinformation it needs, the chatbot can ask further questions to get therequired information. NER can be implemented with regular expressions ormore complicated statistical models.

In another example embodiment, a chatbot can scan for keywords within arequest or message. The chatbot can associate a task with certainkeywords included in the request. For example, if there is a “Hello”keyword in the request, the chatbot can associate this keyword with thetask of greeting. The chatbot can reply to the request based on the taskassociated with the keyword. For example, the chatbot can reply agreeting phrase in response to receiving a greeting task.

In an example embodiment, a chatbot can receive a request to perform asearch for a product. The chatbot can analyze the request and associatea task with the request. In this case, the chatbot can associatesearching for the product with the request. Subsequently, the chatbotcan search a database or a website and retrieve the search results. Thechatbot can perform various tasks on the search results, e.g.,filtering. The chatbot can also transmit some or all of the searchresults to a user. In some embodiments, after analyzing the request, thechatbot can transmit the request to another module to perform the taskassociated with the request. For example, after determining that theuser is asking the chatbot to search for a product, the chatbot cansubmit a search query to a server to retrieve the search results.

In an example embodiment, a user can submit a request to a chatbot andthe request can include a file. The chatbot can analyze the request anddetermine a task in connection with the request. For example, a user cansend a photo of a car to a chatbot and ask the chatbot to determine theyear, make and model of the car. The chatbot can determine that anobject recognition task needs to be performed on the photo. The chatbotcan transmit the photo to a module for object recognition. The modulecan use various object recognition and machine learning techniques toidentify the car included in the photo. The module can transmit theinformation of the car to the chatbot and the chatbot can transmit thisinformation to the user. In an example embodiment, the chatbot canautomatically search for the specific make and model of the vehicle onceit receives the information from the module and return the searchresults to the user. In another embodiment, the chatbot can prompt theuser if the user wants to search for the car, and if the user says yes,the chatbot will search for the car or similar cars.

Communication with the Users

In an example embodiment, a chatbot can be implemented on a server, andthe server can be in communication with a network, e.g., cellularnetwork, the Internet, etc. For example, through the cellular network,the chatbot can send or receive communications, e.g., text messages,phone calls, video communication, files, etc. The chatbot can receivetext messages from the cellular network and the chatbot can transmittext messages to the cellular network. Additionally, one or more userscan receive text messages from the cellular network and the one or moreusers can transmit text messages to the cellular network. Through thecellular network, the one or more users can transmit text messages tothe chatbot and the chatbot can receive the text messages. Additionally,through the cellular network, the chatbot can transmit text messages tothe one or more users and the one or more users can receive the textmessages.

In an example embodiment, a chatbot can be in communication with amessaging application. The messaging application can be an applicationor platform that enables messaging or file sharing between the users ordevices using the application or platform. For example, through themessaging application, the one or more users can transmit messages tothe chatbot and the chatbot can receive the messages. Additionally,through the messaging application, the chatbot can transmit messages tothe one or more users and the one or more users can receive themessages.

In some embodiments, the messaging application can enable file sharingbetween the chatbot and the users. For example, the users can transmitfiles to the chatbot and include a request in connection with the file.In one embodiment, the user can ask the chatbot to find certaininformation about an object depicted in a photo or video. In response,the chatbot can transmit the photo or video to a module which cananalyze the photo or video. The module can ascertain certain informationabout the object. The module can transmit the information to the chatbotand the chatbot can relay the information to the user.

In some embodiments, the messaging application can offer messaging aspart of a social media platform. In this embodiment, the chatbot canhave access to the social media profile of the user or users who jointhe chat group. Using the information stored on the profile of eachuser, the chatbot can customize the chatbot's response to user commandsor instructions. For example, if the respective profile of each userindicates an age of less than 30 years, the chatbot can craft the searchsuch that sports cars are prioritized over other cars, e.g., the firstresult will be a sports car. In an example embodiment, each user'ssearch history or interactions with the chatbot can be stored in adatabase. This database can belong to the chatbot or it can belong tothe social media platform. A user's search history can be used torecommend search results on future searches. For example, if a usernarrows car searches by price, the user's future searches can benarrowed the same way, e.g., by price.

FIG. 1 shows a user interface 101 of a messaging application. In thisexample embodiment, a primary user 111, a secondary user 112 and achatbot 113 are included in a chat group 101. The primary user 111 cansend a message 121 to the chat group 101 initiating a search for a car.In response, the secondary user 112 can send a message 122 suggesting afilter, i.e., color, for the search. The chatbot 113 transmits a message123 to the group chat 101. The message 123 can include the searchresults for cars in the user's area. In this example embedment, the userinterface 100 can display a photo of each car found in the user's area.

Chat Group

In an example embodiment, a user can create a chat group including aplurality of users and at least one chatbot. Each one of the groupmembers (i.e., the users and the chatbot) can create a message andtransmit the message to the chat group. This means that the message canbe disseminated to all members of the group. The chat group can create amedium for the users and the chatbot to exchange messages, data, files,etc. In some embodiments, the group can include users with differentprivileges. For example, the user who starts the chat group can be theprimary user and can decide the other user's privileges.

In an example embodiment, a user intends to shop for a product, e.g., acar. The user can decide what car to buy with the help of the user'sfriends. The user can add the friends to a chat group. The user can alsoadd a chatbot to the chat group. The user or the friends can send a textmessage to the chat group to start the conversation about the product.For example, the user can send a text message which indicates the user'sinterest in a 2-years old car with less than 30,000 miles. The friendscan make suggestions and recommendations to the user and the chatbot cansearch for cars based on the friends' suggestions and recommendations.For example, one friend can recommend an SUV. The chatbot can understandthe flow of the conversation and determine that it needs to search foran SUV which is 2-years old with less than 30,000 miles. Based on thisdetermination, the chatbot can search a car inventory and retrieve thesearch results.

Resolution Algorithm

In an example embodiment, a chatbot can receive requests that are“different.” The chatbot can include a resolution algorithm or modulefor analyzing the “different” requests and determining what task isbeing asked of the chatbot.

The requests can be “different” if the requests conflict or evenoverlap. For example, a first user can ask the chatbot to display redcars available to the user in the user's area and a second user can askthe chatbot to display blue cars. The chatbot can determine that thefirst request conflicts with the second request because the setincluding the red cars in the user's area is not the same as the setincluding the blue cars. As another example, the first user can ask thechatbot to display red cars and the second user can ask the chatbot todisplay new cars. The chatbot can determine that the first requestoverlaps with the second request because the set including the red carscan include some of the cars included in the set including the new cars.

In one example embodiment, the resolution algorithm can address requeststhat are “different” by considering which user makes the request. Eachchat group can include at least one primary user. The users other thanthe primary user can be secondary users. The resolution algorithm canprioritize the primary user's requests over the secondary users'requests. For example, the user who initiates the chat group can be theprimary user and the users who join later can be the secondary users. Inthis example embodiment, if there are different requests, the resolutionalgorithm can always resolve the difference in favor of the primaryuser.

In one embedment, the resolution algorithm resolves “different” requestsbased on the nature of the difference. For example, the resolutionalgorithm can resolve conflicts in favor of the primary user but theresolution algorithm can resolve the overlapping requests in favor ofthe secondary users. The rationale can be that the primary user shouldbe able to decide the main topic of the conversation, but the secondaryusers should help the primary user to focus the conversation.

In another example embodiment, the resolution algorithm can use a weightsystem to address different requests. For example, the resolutionalgorithm can assign a preference weight to each user's preference andthe resolution algorithm can resolve differences based on the weightassigned to each user who makes a request. In one embodiment, every userhas the same preference weight as every other user. Therefore, if twousers make the same request but a third user makes a different request,the resolution algorithm proceeds according to the request made by thefirst two users. In another embodiment, every user has the samepreference weight as every other user. The resolution algorithm canresolve conflicts in favor of the request which receives the highesttotal preference weight, but the resolution algorithm can resolveoverlaps in favor of the request which receives the second highest totalpreference weight. In yet another embodiment, the primary user receivesa higher preference weight than every other user. Therefore, the primaryuser can overturn every other user, but few of the users can join forcesand overturn the primary user.

In another example embodiment, the resolution algorithm uses a linearupdating mechanism. The resolution algorithm addresses “different”requests by considering a temporal aspect of each request, e.g., thelatest request can override a prior different request. For example, achatbot can receive two text messages. The first text message can askthe chatbot to perform a first task. The second text message can ask thechatbot to perform a second task. In this example embodiment, thechatbot can perform the second task regardless of what the first task isand regardless of who sends out the first or second text messages. Asanother example, the chatbot can perform the second task only if thefirst task conflicts with the second task.

In an example embodiment, the chatbot can use a group consensus modelfor addressing “different” requests. For example, the chatbot can pollthe users when it detects “different” requests. In a first example,after detecting “different” requests, the chatbot can send a summary ofthe requests to the users and ask the users to vote on the request theusers want to pursue. In some embodiments, the voting can be based onthe count number of the users who vote for each option. In otherembodiments, the votes can be weighted, e.g., a user's vote can have ahigher weight than another user's vote. The chatbot can make a decisionbased on the total weight of the votes for each option.

In an example embodiment, the chatbot can ask the primary user forauthorization or approval if the chatbot receives “different” requestsfrom secondary users (or users with lower privileges). For example, in achat group consisting of members of a family, if the kids (i.e.,secondary users) pose an idea for a search, the chatbot can ask theparents (i.e., primary users) to confirm whether the chatbot shouldstart a search based on the idea proposed. In one embodiment, theprimary can modify the request and ask the chatbot to run the searchbased on the modified request.

In a second example, the chatbot can directly address a user who has orhas not participated in the conversation and ask for the user's opinionabout a “difference.” For example, if a first user desires to see redcars but a second user desires blue cars, the chatbot can direct aquestion to a third user. The chatbot can ask the third user which carsthe user desires to see. The chatbot can proceed based on the thirduser's response.

In an example embodiment, the chatbot can wait for a predeterminedperiod of time for a user to respond to a poll or question. If the userdoes not respond within the predetermined period of time, the chatbotcan proceed with the information already provided to the chatbot, e.g.,the chatbot can resolve the “difference” with this information. Forexample, a chatbot poses a poll and only a few users respond to thepoll. The chatbot can proceed after a predetermined period of time ifthere are enough answers to resolve the difference. In one embodiment,the chatbot can wait for a predetermined number of responses before itproceeds. In other words, the waiting can also or alternatively be basedon the number of responses received.

As yet another example, the chatbot can proceed after not receiving aresponse from a user only if the chatbot has waited for a period of timespecific to the user or users who have not responded. For example, thechatbot can associate an average inactivity period to each user. Theinactivity period can be calculated based on the average time it takesthe user to respond to a question or message in prior messages. Forexample, a first user responds to polls an average of five minutes afterthe poll is received by the user and a second user responds to polls anaverage of ten minutes after the poll is received by the user. If thesecond user does not respond to a poll, the chatbot can proceed afterwaiting for ten minutes, but the chatbot can proceed after waiting forfive minutes if the second user responds to the poll. If multiple usersfail to respond to the chatbot, the chatbot can proceed after waitingfor the longest average inactivity period associated with the multipleusers.

In an example embodiment, the chatbot can send a reminder to each userwho has not responded to the poll. For example, if a user has notresponded to the poll, the chatbot can send a message to the groupmessage asking the user to respond to the poll. The chatbot can sendthis message after waiting for the average inactivity period associatedwith the user.

In an example embodiment, the primary user can define differentprivileges for each user of the chat group. For example, when theprimary user adds each user, the primary user can message the chatbotthe level of privilege granted to the user. In one embodiment, some ofthe users can submit requests and vote on polls but the rest of theusers can only vote on polls. In an example embodiment, the user whoinitiates the chat group can assign one or more users as primary users.

In an example embodiment, when there is a conflict between two requests,the chatbot can add input to the conversation. For example, the chatbotcan run the task associated with each request and transmit a piece ofinformation associated with each task. As another example, for a carsearch chatbot, the users can ask the chatbot to display cars that meeta first condition and a second condition. If the two requests conflict,the chatbot can transmit information about each request. Thisinformation can include, e.g., the number of search results for eachrequest, the average price for the cars included in each request, etc.In one embodiment, when there is a conflict, the chatbot can offerinformation to the users which makes the car selection easier. Forexample, if one request asks for SUVs and another request asks forsedans, the chatbot can offer car safety information for SUVs andsedans. In yet another embodiment, when there is a conflict, the chatbotcan display the search results relating to both requests.

User Feedback

In an example embodiment, a user of a chat group can submit a questionor a search request for a product to a chatbot. In response, the chatbotcan conduct a search on a database or a website. The search can return anumber of search results. The chatbot can ask a follow-up question fromthe users (or a user can send a follow-up message to the chatbot). Thefollow-up question can ask the user for a filter condition. The filtercondition can be a search condition that can broaden or narrow the scopeof the search.

For example, if the number of search results exceeds a threshold number,the chatbot can seek a filter condition. In one embodiment, the filtercondition can be a search criteria which narrows or broadens the searchsuch that the number of results fits within the threshold number (orover the threshold number). For example, if the user asks the chatbot tosearch for red cars located in the user's area, the chatbot can conducta search and receive more than 500 search results. This number exceeds asearch result threshold number of 20. Hence, the chatbot can determine afilter condition should be implemented. In one embodiment, the chatbotsends a message to the chat group indicating the number of searchresults. The chatbot can also ask the users if they want to narrow thesearch criteria. In response, one of the users can message an additionalcondition to the chatbot, e.g., the user can ask the chatbot to focusthe search only on SUVs.

In an example embodiment, after conducting the search, the chatbotretrieves too few search results. For example, the chatbot retrieves anumber of search results below a threshold value. The chatbot cansuggest a filter condition to the user to broaden the scope of thesearch.

In another embodiment, the chatbot can identify a few filters and sendthe name of at least one of the filters to the users. For example, thechatbot can determine that the search results can be narrowed by vehicleyear, make, model, body type, etc. The chatbot can determine thesefilters by analyzing the search results, or the database which transmitsthe search results can provide the names of the filters to the chatbot.The chatbot can send the name of at least one of these filters to theusers. For example, the chatbot can inform the users that in response tothe users' query about a red car, too many search results are returned.The chatbot can also inform the users that they have the option tonarrow the results by specifying a vehicle year, make, model or bodytype.

In one embodiment, the chatbot can send the user the name of a filterwhich narrows the search results the most. For example, if specifyingthe vehicle manufacturer can narrow the search results by at least 20percent and the vehicle body type can narrow the results by at least 30percent, the chatbot can inform the user that by selecting a vehiclebody type, the user can eliminate at least 30 percent of the searchresults. Hence, the user (or friends of the user in the chat group) canspecify a body type for the vehicle and the chatbot can narrow thesearch results accordingly.

In another embodiment, the chatbot can recommend a filter condition. Therecommendation can be based on a variety of factors, including a userprofile of some or all of the users, the product searched for, priorsearches by other users of the chatbot, location of the user, etc. Forexample, the service provider which operates the chatbot can possesscertain information about the user which initiates a group chat, e.g.,income. Based on the user's income, the chatbot can recommend to theuser that a useful filter condition would be to limit the search byspecifying a sedan body type for the vehicle.

In one embodiment, the chatbot is connected to a messenger applicationassociated with a social media platform. After creating the group chat,the chatbot can receive profile information for each one of the usersadded to the group chat. In response to a query by the chatbot, thesocial media platform can provide this information to the chatbot. Basedon the social media profile of some or all of the users, the chatbot canrecommend a filter condition to the user.

In one embodiment, the chatbot can inform the user about the number ofresults retrieved by the chatbot. The chatbot can ask the user if theuser desires to specify a filter condition for narrowing the searchresults. The user can specify a filter condition. If the filtercondition can be implemented on the search results, the chatbotimplements the filter condition and informs the user about the updatedsearch result.

Displaying the Results

In an example embodiment, after performing the task that the user askedthe chatbot to perform, the chatbot can transmit a communication to theuser. The communication can be displayed to the user. For example, ifthe user asks the chatbot to perform a product search, the chatbot cansearch for the specified product and display some or all of the searchresults to the user.

In one embodiment, the chatbot can ask the user to specify the format inwhich the user desires to see the search results. For example, thechatbot can ask the user to display the results as text, links, photos,etc. Based on the user's response, the chatbot can deliver the resultsin the specified format. In one embodiment, the chatbot can indicate tothe user how many search results the chatbot retrieved. The chatbot canask the user if the user wants to see the results or if the user wantsto filter the results. The chatbot can also ask the user if the userwants to see a specified number of results. For example, the chatbot canask the user if the user wants to see the first 5 results retrieved.

In one example embodiment, the search results are displayable within anapplication which displays the chat group's messages. For example, thechatbot can transmit a link to the chat group. The applicationdisplaying the chat group can also display the content of the linktransmitted to the chat group, e.g., a preview photo, the title of thepage, etc. In another example embodiment, when a link is transmitted tothe user, the user can activate the link in the chat group application.However, the content of the link can be displayed in a separateapplication.

In one embodiment, after retrieving the search results, the chatbot cantext message the search results to the users. After texting the results,the chatbot can ask a follow-up question. For example, the chatbot canask the users if they prefer to receive the results in the same format.

In one embedment, a user can specify a search condition for a vehicle.After conducting the search, the chatbot can display some or all of thesearch results retrieved, e.g., by text messaging the link for eachsearch result to the chat group. The user can see the search results.However, after seeing the search results, the user can indicate that theuser is not satisfied with the search results. The chatbot canunderstand this response by the user and display other results or askthe user to redefine the search criteria.

In an example embodiment, after displaying the search results, thechatbot can prompt the chat group to determine if the group isinterested in seeing results similar to the search results. For example,if a user of the chat group asked for Ford trucks, after displaying theresults, the chatbot can ask if the user is interested in seeing similarvehicles. If the user expresses interest, the chatbot can displayresults relating or similar to Ford trucks, e.g., GM trucks.

In an example embodiment, after displaying search results, the chatbotcan display information relating to the search results. For example,after displaying the cars that the chatbot was able to find, the chatbottransmits financing information to the user. The chatbot can alsotransmit statistical information relating to the chatbot's search. Forexample, after searching for red cars, the chatbot can transmit to thegroup the average price and mileage of the cars found.

A Search Alert

In an example embodiment, a member of a chat group can ask the chatbotto set-up a search alert. The search alert can by a dynamic searchalgorithm which notifies the user or the chatbot when a new searchresult is found. For example, for a red car search, if the user sets upan alert, the chatbot can notify the user each time a new red car isfound. In some embodiments, the chatbot can dynamically run the searchalgorithm. However, in other embodiments, the chatbot can instructanother module to run the search algorithm. Each time a new result isretrieved, the module can notify the chatbot. In response, the chatbotcan send a message including the new search result to the chat group.

The notifications can be sent periodically (as determined by the user)or they can be sent as new search results are found. For example, a usercan specify a period of “daily” to the chatbot. Hence, the chatbot cannotify the user only once a day. In one embodiment, the user can set upa threshold search result number. If the number of new search resultsexceed the threshold number, the chatbot can prompt the user. Forexample, the chatbot can ask the user if the user wants to see all, someor none of the results. In response, the user can specify that the userdesires to see only some of the results.

In an example embodiment, a user can choose a search result as afavorite. In response, the chatbot can store the search result in thechatbot's database. The chatbot can also store the search result inother databases, e.g., a user's social media account or another account.The user can prompt the chatbot to display prior favorites. In response,the chatbot can transmit the previously stored search results to thechat group.

Technical Implementation of the Server

FIG. 2 illustrates exemplary hardware components of a server. A computersystem 200, or other computer systems similarly configured, may includeand execute one or more subsystem components to perform functionsdescribed herein, including the steps of various flow processesdescribed above. Likewise, a mobile device, a cell phone, a smartphone,a laptop, a desktop, a notebook, a tablet, a wearable device, a server,etc., which includes some of the same components of the computer system200, may run an application (or software) and perform the steps andfunctionalities described above. Computer system 200 may connect to anetwork 214, e.g., Internet, or other network, to receive inquiries,obtain data, and transmit information and incentives as described above.

The computer system 200 typically includes a memory 202, a secondarystorage device 204, and a processor 206. The computer system 200 mayalso include a plurality of processors 206 and be configured as aplurality of, e.g., bladed servers, or other known serverconfigurations. The computer system 200 may also include a networkconnection device 208, a display device 210, and an input device 212.

The memory 202 may include RAM or similar types of memory, and it maystore one or more applications for execution by processor 206. Secondarystorage device 204 may include a hard disk drive, floppy disk drive,CD-ROM drive, or other types of non-volatile data storage. Processor 206executes the application(s), such as those described herein, which arestored in memory 202 or secondary storage 204, or received from theInternet or other network 214. The processing by processor 206 may beimplemented in software, such as software modules, for execution bycomputers or other machines. These applications preferably includeinstructions executable to perform the system and subsystem componentfunctions and methods described above and illustrated in the FIGS.herein. The applications preferably provide graphical user interfaces(GUIs) through which users may view and interact with subsystemcomponents.

The computer system 200 may store one or more database structures in thesecondary storage 204, for example, for storing and maintaining theinformation necessary to perform the above-described functions.Alternatively, such information may be in storage devices separate fromthese components.

Also, as noted, processor 206 may execute one or more softwareapplications to provide the functions described in this specification,specifically to execute and perform the steps and functions in theprocess flows described above. Such processes may be implemented insoftware, such as software modules, for execution by computers or othermachines. The GUIs may be formatted, for example, as web pages inHyperText Markup Language (HTML), Extensible Markup Language (XML) or inany other suitable form for presentation on a display device dependingupon applications used by users to interact with the computer system200.

The input device 212 may include any device for entering informationinto the computer system 200, such as a touch-screen, keyboard, mouse,cursor-control device, microphone, digital camera, video recorder orcamcorder. The input and output device 212 may be used to enterinformation into GUIs during performance of the methods described above.The display device 210 may include any type of device for presentingvisual information such as, for example, a computer monitor orflat-screen display (or mobile device screen). The display device 210may display the GUIs and/or output from sub-system components (orsoftware).

Examples of the computer system 200 include dedicated server computers,such as bladed servers, personal computers, laptop computers, notebookcomputers, palm top computers, network computers, mobile devices, or anyprocessor-controlled device capable of executing a web browser or othertype of application for interacting with the system.

Although only one computer system 200 is shown in detail, system 200 mayuse multiple computer systems or servers as necessary or desired tosupport the users and may also use back-up or redundant servers toprevent network downtime in the event of a failure of a particularserver. In addition, although computer system 200 is depicted withvarious components, one skilled in the art will appreciate that thesystem can contain additional or different components. In addition,although aspects of an implementation consistent with the above aredescribed as being stored in a memory, one skilled in the art willappreciate that these aspects can also be stored on or read from othertypes of computer program products or computer-readable media, such assecondary storage devices, including hard disks, floppy disks, orCD-ROM; or other forms of RAM or ROM. The computer-readable media mayinclude instructions for controlling the computer system 200, to performa particular method, such as methods described above.

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as may be apparent.Functionally equivalent methods and apparatuses within the scope of thedisclosure, in addition to those enumerated herein, may be apparent fromthe foregoing representative descriptions. Such modifications andvariations are intended to fall within the scope of the appendedrepresentative claims. The present disclosure is to be limited only bythe terms of the appended representative claims, along with the fullscope of equivalents to which such representative claims are entitled.It is also to be understood that the terminology used herein is for thepurpose of describing particular embodiments only, and is not intendedto be limiting.

1-20. (canceled)
 21. A method comprising: receiving, from a primaryclient device, a first message including a first query, the firstmessage being received through a group messaging interface; receiving,from a secondary client device, a second message including a secondquery, the second message being received through the group messaginginterface; determining, at a chatbot, if there is a conflict between thefirst query and the second query, wherein there is a conflict betweenthe first query and the second query when there is no overlap between afirst search result based on the first query and a second search resultbased on the second query; if there is the conflict, resolving theconflict in favor of the primary client device by selecting the firstquery as an output query; if there is no conflict, selecting the secondquery as the output query; transmitting, from the chatbot, the outputquery to a task server; receiving a task result from the task server,wherein the task result includes at least one search hit in response tosearching the output query and the at least one search hit includes alink; and transmitting the task result as a third message to the groupmessaging interface such that the third message is accessible by theprimary client device and the secondary client device, wherein the thirdmessage is configured to cause the primary client device and thesecondary client device display a preview photo retrievable from thelink.
 22. The method of claim Error! Reference source not found.,wherein the chatbot is configured to access a profile associated witheach of the primary client device and the secondary client device. 23.The method of claim 22, further comprising customizing the output querybased on the profile.
 24. The method of claim 22, wherein the profileincludes a search history.
 25. The method of claim 22, wherein theprofile is associated with a social media platform.
 26. The method ofclaim Error! Reference source not found., further comprising assigning apreference weight to each of the primary client device and the secondaryclient device.
 27. The method of claim 26, further comprising resolvingthe conflict in favor of the primary client device using the preferenceweight assigned to each of the primary client device and the secondaryclient device.
 28. The method of claim Error! Reference source notfound., further comprising prompting each of the primary client deviceand the secondary client device to display a poll and receiving aresponse to the poll from each of the primary client device and thesecondary client device.
 29. The method of claim 28, further comprisingresolving the conflict in favor of the primary client device using theresponse to the poll.
 30. The method of claim 28, further comprisingresolving the conflict in favor of the primary client device using theresponse to the poll after waiting a predetermined period.
 31. Themethod of claim 30, wherein the predetermined period is an averageinactivity period for the primary client device or the secondary clientdevice.
 32. The method of claim Error! Reference source not found.,wherein the secondary client device is associated with a privilege leveldefined by the primary client device.
 33. The method of claim Error!Reference source not found., further comprising prompting the primaryclient device to select a filter when the first search result exceeds afirst threshold value.
 34. The method of claim 33, wherein the chatbotdetermines the filter based on a profile associated with each of theprimary client device and the secondary client device.
 35. The method ofclaim 33, further comprising transmitting an efficacy rate for thefilter to the group messaging interface.
 36. The method of claim Error!Reference source not found., further comprising transmitting to thegroup messaging interface a number of the first search result, andprompting the primary client device to select a filter.
 37. The methodof claim 36, further comprising receiving a selection of the filter. 38.A method comprising: transmitting a first message including a firstquery from a primary client device to a group messaging interface;receiving, at the primary client device, a second message including asecond query from a secondary client device through the group messaginginterface; and receiving, at the primary client device, a task result asa third message transmitted through the group messaging interface,wherein the third message is configured to cause the primary clientdevice and the secondary client device display a preview photoretrievable from a link; wherein a chatbot is a member of the groupmessaging interface and the chatbot is configured to: determine if thereis a conflict between the first query and the second query, whereinthere is a conflict between the first query and the second query whenthere is no overlap between a first search result based on the firstquery and a second search result based on the second query; if there isthe conflict, resolve the conflict in favor of the primary client deviceby selecting the first query as an output query; if there is noconflict, select the second query as the output query; transmit theoutput query to a task server; and receive the task result from the taskserver, wherein the task result includes at least one search hit inresponse to searching the output query and the at least one search hitincludes the link.
 39. The method of claim 38, wherein the secondaryclient device is associated with a privilege level defined by theprimary client device.
 40. A method comprising: receiving, from aprimary client device, a first message including a first query, thefirst message being received through a group messaging interface;receiving, from a secondary client device, a filter condition, wherein:the filter condition is a search condition that can narrow a scope ofthe first query; and the filter condition is a vehicle year, a vehiclemake, a vehicle model, or a vehicle body type; generating an outputquery based on the first query and the filter condition; transmitting,from a chatbot, the output query to a task server; receiving a taskresult from the task server, wherein the task result includes at leastone search hit in response to searching the output query and the atleast one search hit includes a link; and transmitting the task resultas a third message to the group messaging interface such that the thirdmessage is accessible by the primary client device and the secondaryclient device, wherein the third message is configured to cause theprimary client device and the secondary client device display a previewphoto retrievable from the link.